package com.链表;

/**
 * 给定一个链表，两两交换其中相邻的节点，并返回交换后的链表。
 *
 * 你不能只是单纯的改变节点内部的值，而是需要实际的进行节点交换。
 *
 *  
 *
 * 示例:
 *
 * 给定 1->2->3->4, 你应该返回 2->1->4->3.
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/swap-nodes-in-pairs
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class 两两交换链表中的节点 {
    static class Solution {
        public ListNode swapPairs(ListNode head) {
            ListNode dummy = head;
            while (dummy.next != null ){
                int cur = dummy.val;
                dummy.val  =  dummy.next.val;
                dummy.next.val = cur;
                if(dummy.next.next == null){
                    break;
                }
                dummy = dummy.next.next;
            }
            return head;
        }
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        ListNode head = new ListNode(new int[]{1});
        solution.swapPairs(head);
    }
}
